package streaming

import java.util.Properties

import kafka.producer.{KeyedMessage, Producer, ProducerConfig}
//import org.codehaus.jettison.json.JSONObject

import scala.util.Random

/**
  * Created by yuanxiaofeng on 2016/5/15.
  */
object KafkaEventProducer {
  private val users = Array(
    "4A4D769EB9679C054DE81B973ED5D768", "8dfeb5aaafc027d89349ac9a20b3930f",
    "011BBF43B89BFBF266C865DF0397AA71", "f2a8474bf7bd94f0aabbd4cdd2c06dcf",
    "068b746ed4620d25e26055a9f804385f", "97edfc08311c70143401745a03a50706",
    "d7f141563005d1b5d0d3dd30138f3f62", "c8ee90aade1671a21336c721512b817a",
    "6b67c8c700427dee7552f81f3228c927", "a95f22eabc4fd4b580c011a3161a9d9d")

  private val keys = Array(
    "龙岩",
    "鼓浪屿",
    "黔东南",
    "黑龙江",
    "黄龙",
    "黄鹤楼",
    "黄浦江“清游江”游览船",
    "黄浦",
    "黄果树瀑布",
    "黄山飘雪温泉",
    "黄山醉温泉国际度假酒店(原华美达酒店)",
    "黄山醉温泉",
    "黄山西海山庄",
    "黄山白云宾馆",
    "黄山狮林大酒店",
    "黄山温泉度假酒店",
    "黄山排云楼宾馆",
    "黄山市",
    "黄山北海宾馆",
    "黄山",
    "高雄",
    "马来西亚",
    "香港杜莎夫人蜡像馆",
    "香港华丽海景酒店",
    "香港",
    "香格里拉",
    "首尔",
    "顾村公园",
    "韩国",
    "非洲",
    "青龙寺",
    "青浦",
    "雪乡",
    "陵水",
    "陕西武侯祠",
    "陕西",
    "阿坝",
    "阆中市玉宸客栈",
    "阆中",
    "长风公园",
    "长白山",
    "长宁",
    "锡林郭勒盟正蓝旗188连锁宾馆",
    "锡林郭勒盟",
    "钟山",
    "金龟露营小镇",
    "金广快捷(西安火车站店)",
    "重庆",
    "赣州",
    "贵阳",
    "贵州",
    "西海大峡谷",
    "西江千户苗寨",
    "西岛旅游度假区",
    "西安",
    "西双版纳",
    "蜈支洲岛度假中心",
    "蒙巴萨",
    "莫泰168(上海嘉定新城白银路地铁站店)",
    "茂名",
    "苏梅岛",
    "苏州雍景山庄",
    "苏州美术馆",
    "苏州天颐温泉",
    "苏州书香世家树山温泉",
    "苏州",
    "花莲县",
    "花莲",
    "芭提雅",
    "肯尼亚",
    "老季草莓园",
    "老周香甜奶油草莓采摘基地",
    "美国",
    "纽约州",
    "纽约",
    "秦皇岛",
    "秦始皇兵马俑博物馆",
    "福建土楼",
    "福建",
    "福冈",
    "石林风景名胜区",
    "百里峡润权农家院",
    "白洋淀文化苑",
    "电白县",
    "甲米",
    "甘肃",
    "瑶琳仙境",
    "玉龙雪山",
    "牡丹江",
    "牟尼沟",
    "烟袋斜街",
    "澳门",
    "溧阳天目湖涵田度假村酒店",
    "湖南",
    "湖北",
    "淳安",
    "深圳",
    "海南槟榔谷黎苗文化旅游区",
    "海南",
    "浦东",
    "浙江省科技馆",
    "浙江",
    "济州特别自治道",
    "济州岛",
    "测试张一",
    "泰国",
    "法国",
    "河北",
    "汤连得温泉会馆",
    "江西",
    "江苏",
    "汉城湖",
    "汉中",
    "永登金福瀚宾永登金福瀚宾馆馆",
    "永定县",
    "毓园",
    "武汉欢乐谷",
    "武汉",
    "桐庐",
    "桐君山",
    "格林豪泰(合肥市繁华大道决策大厦店)",
    "松江",
    "杭州金马金致酒店(萧山市心广场店)",
    "杭州萧山宝盛宾馆",
    "杭州宋城云曼温泉",
    "杭州",
    "曼谷",
    "景德镇乐平红星宾馆",
    "景德镇乐平凤悦宾馆",
    "景德镇",
    "普吉岛",
    "晋中温馨日租房",
    "晋中",
    "明孝陵",
    "昆明都市高尔夫温泉酒店",
    "昆明",
    "日本",
    "无锡",
    "新加坡",
    "故宫博物院",
    "放鸡岛海洋度假公园",
    "成都",
    "惠州皇冠假日酒店",
    "惠州",
    "恭王府",
    "徐州苏山宾馆",
    "徐州",
    "张家口",
    "延边",
    "广东",
    "常州锦江国际大酒店",
    "常州都喜富都滨湖酒店",
    "常州淹城野生动物园",
    "常州万达嘉华酒店",
    "常州",
    "巴黎",
    "巫山小三峡",
    "崇礼",
    "崇明",
    "峨眉山",
    "岳阳蘭花主题宾馆",
    "岳阳",
    "山西",
    "屏东市",
    "屏东县",
    "小鱼温泉",
    "富春江小三峡",
    "密苑云顶乐园",
    "宜昌枝江汇津宾馆",
    "宜昌",
    "安顺",
    "安徽",
    "如家快捷酒店(上海杨高中路店)",
    "夫子庙秦淮风光带",
    "天涯海角风景区",
    "天津黄崖关大平安村光伟农家院",
    "天津",
    "大理时光水疗酒店",
    "大理古城",
    "大理",
    "大奇山国家森林公园",
    "基隆市",
    "垦丁大街夜市",
    "四川",
    "唐模",
    "哈尔滨",
    "呀诺达雨林文化旅游区",
    "吉隆坡",
    "吉林市",
    "吉林天同一商务快捷宾馆(桦甸)",
    "吉林",
    "合肥梵爱精品主题公寓",
    "合肥常来旅馆",
    "合肥",
    "叶宿文旅",
    "台湾",
    "台北",
    "台中",
    "双廊",
    "厦门闽南大酒店",
    "厦门观音山沙雕文化公园",
    "厦门大学",
    "厦门",
    "南靖云水谣",
    "南湾猴岛",
    "南普陀寺",
    "南山文化旅游区",
    "南山寺",
    "南充",
    "南京",
    "南丰城绿坪广场",
    "单酒店测试",
    "千岛湖绿城度假酒店",
    "千岛湖润和建国度假酒店",
    "千岛湖森林氧吧",
    "千岛湖中心湖区",
    "千岛湖",
    "北美洲",
    "北戴河陶艺宾馆",
    "北戴河区",
    "北京圣威德商务酒店",
    "北京",
    "创艺草莓苑",
    "内蒙古",
    "兰州",
    "公主号夜游三亚湾之旅",
    "保定",
    "仁川",
    "亚龙湾玫瑰谷",
    "亚龙湾热带天堂森林公园",
    "亚洲",
    "云南",
    "九寨沟",
    "乐平市",
    "乐山大佛景区",
    "乐山",
    "丽江古城",
    "丽江",
    "临安祺欣大酒店",
    "临安和润世家度假酒店",
    "临安",
    "中国航海博物馆",
    "中国",
    "东莞维嘉百货住宿",
    "东莞",
    "东方绿舟",
    "东方明珠",
    "东北",
    "上海黄浦江游览",
    "上海陆家嘴金融贸易区",
    "上海锦江都城闵行饭店",
    "上海野生动物园",
    "上海辰山植物园",
    "上海菲堤酒店",
    "上海莎海国际酒店",
    "上海花园饭店",
    "上海环球金融中心观光厅",
    "上海环球金融中心",
    "上海漕泾休闲水庄温泉岛",
    "上海海洋水族馆",
    "上海欣琪精品酒店虹桥机场店",
    "上海欢乐谷",
    "上海月湖雕塑公园",
    "上海旗山大酒店",
    "上海新胜草莓园",
    "上海影视乐园",
    "上海帝盛酒店(原上海丽悦酒店)",
    "上海崇明高家庄生态园",
    "上海尚格宾馆(新国际博览中心店)",
    "上海动物园",
    "上海仕南度假村",
    "上海之根雪浪湖温泉",
    "上海中信泰富朱家角锦江酒店",
    "上海世纪公园",
    "上海",
    "三亚百栎国际度假公寓(原柏栎国际度假公寓)",
    "三亚海棠湾万达希尔顿逸林度假酒店",
    "三亚柏瑞精品海景酒店",
    "三亚崖城金海旅租",
    "三亚大小洞天",
    "三亚国光豪生度假酒店",
    "三亚君然温泉度假酒店",
    "三亚千古情景区",
    "三亚亚龙湾红树林度假酒店",
    "三亚"
  )

  private val random = new Random()

  private var pointer = -1

  def getUserID(): String = {
    pointer = pointer + 1
    if (pointer >= users.length){
      pointer = 0
      users(pointer)
    } else {
      users(pointer)
    }
  }

  def click(): Int = {
    random.nextInt(10) + 1
  }

  def getKey() : String = {
    val n = random.nextInt(keys.length)
    keys(n)
  }

  def main(args: Array[String]) {
    val topic = "search_events"
    val brokers = "10.200.2.104:9092,10.200.2.113:9092,10.200.2.114:9092"
    val props = new Properties()
    props.put("metadata.broker.list", brokers)
    props.put("serializer.class", "kafka.serializer.StringEncoder")

    val kafkaConfig = new ProducerConfig(props)
    val producer = new Producer[String, String](kafkaConfig)

//    while(true){
//      val event = new JSONObject()
//      event
//        .put("uid", getUserID())
//        .put("event_time", System.currentTimeMillis().toString)
//        .put("key", getKey())
//        .put("click_count", click())
//
////      producer.send(new KeyedMessage[String, String](topic, event.toString()))
//      producer.send(new KeyedMessage[String, String](topic,"yxf", "yxf", event.toString()))
//      println("Message sent:" + event)
//      Thread.sleep(200)
//    }

  }
}
